草庐IT

C++ 泛型 vector

全部标签

c# 在运行时创建一个未知的泛型类型

所以我有一个泛型类,它可能需要在它自己的一个方法中创建一个具有不同类型泛型的实例,其类型是通过反射获得的。这很重要,因为此存储库映射T到数据库表[这是我正在写的一个ORMish],如果代表T的类有一个代表另一个表的集合,我需要能够实例化它并将其传递到存储库[alaInception]。我正在提供方法,以防它更容易发现问题。privatePropertiesAttributesAndRelatedClassesGetPropertyAndAttributesCollection(){//ReturnsaListofPropertyAndAttributesvartype=typeof(T

c# - 无法为泛型类型创建 TypeConverter

我想创建一个TypeConverter对于通用类,像这样:[TypeConverter(typeof(WrapperConverter))]publicclassWrapper{publicTValue{//get&set}//othermethods}publicclassWrapperConverter:TypeConverter{//onlysupportToandFromstringspublicoverrideboolCanConvertFrom(ITypeDescriptorContextcontext,TypesourceType){if(sourceType==type

c# - 如何在不知道封闭泛型类型的情况下访问泛型属性

我有一个通用类型如下publicclassTestGeneric{publicTData{get;set;}publicTestGeneric(Tdata){this.Data=data;}}如果我现在有一个对象(来自某个外部源),我知道它的类型是某个封闭的TestGeneric,但我不知道TypeParameterT。现在我需要访问数据我的对象。问题是我无法转换对象,因为我不确切知道哪个关闭的TestGeneric。我用//thxtohttp://stackoverflow.com/questions/457676/c-reflection-check-if-a-class-is-d

C# 泛型 : cast generic type to value type

我有一个泛型类,它保存指定类型T的值。该值可以是int、uint、double或float。现在我想获取值的字节以将其编码为特定协议(protocol)。因此我想使用方法BitConverter.GetBytes()但不幸的是Bitconverter不支持泛型类型或undefinedobject。这就是为什么我要转换值并调用GetBytes()的特定重载。我的问题:如何将通用值转换为int、double或float?这不起作用:publicclassGenericClasswhereT:struct{T_value;publicvoidSetValue(Tvalue){this._va

c# - 为具有泛型集合的 C# 项目生成 Doxygen

我正在使用Doxygen和GraphVizDot为C#项目生成一些协作图。问题是Doxygen无法识别通用集合(如List)。有人对此有解决方案吗?我找到了thiscomment这看起来希望不大,但想知道是否有任何解决方法。 最佳答案 根据Doxygen'schangelog,C#中的泛型在版本1.8.1.1(10月6日发布)之前未被索引。我没有看到它的相应错误,尽管查看以前的版本它们已经支持了一段时间。正如我上面的评论所述,我没有发现使用当前版本(1.8.2)有任何问题。如果那是您使用的版本,请特别指出不起作用的地方。

c# - 为什么泛型方法中的动态参数在使用对象时会抛出空引用异常?

这个问题在这里已经有了答案:Whyiscastingadynamicoftypeobjecttoobjectthrowinganullreferenceexception?(4个答案)关闭6年前。我想知道是否有人可以在这段代码中解释原因publicclassSomeClass{publicTGenericMethod(dynamicvalue){return(T)value;}}'返回值;'语句在调用时抛出空引用异常:newSomeClass().GenericMethod(newobject());//throwsSystem.NullReferenceException调用时按预期

c# - c#中递归泛型类型的问题

我有一些C#代码可以在单声道和Microsoft的.net编译器下编译得很好,但只能在单声道上运行。错误信息是(我添加的换行符)UnhandledException:System.TypeLoadException:Couldnotloadtype'Hasse.Groups.Heavy.Product.PowerGroup`1'fromassembly'Hasse,Version=1.0.x.y,Culture=neutral,PublicKeyToken=null'becauseithasrecursivegenericdefinition.该类型实际上有一个递归泛型定义,所以我的问

c# - 为什么对泛型的显式接口(interface)调用总是调用基础实现?

为什么在具有接口(interface)类型约束的泛型方法中显式C#接口(interface)调用总是调用基实现?例如,考虑以下代码:publicinterfaceIBase{stringMethod();}publicinterfaceIDerived:IBase{newstringMethod();}publicclassFoo:IDerived{stringIBase.Method(){return"IBase.Method";}stringIDerived.Method(){return"IDerived.Method";}}staticclassProgram{staticvo

c# - 泛型的奇怪使用

经过一些编程之后,我的一个类以一种我以前从未见过的方式使用了泛型。我想对此提出一些意见,无论它是否是糟糕的编码。abstractclassBase:whereT:Base{//omittedmethodsandproperties.virtualvoidCopyTo(Tinstance){/*code*/}}classDerived:Base{overridevoidCopyTo(Derivedinstance){base.CopyTo(instance);//copyremainingstuffhere}}这是否可以使用泛型?我主要在考虑对“自身”的约束。有时我觉得泛型会“爆炸”到我

c# - 为什么泛型 IList<> 不继承非泛型 IList

IList不继承IList其中IEnumerable继承IEnumerable.如果out修饰符是大多数执行IList的唯一原因(例如Collection,List)实现IList界面。所以任何人都可以说OK,如果该陈述对于IList的所有实现都是正确的然后直接投给IList必要时。但问题是虽然IList不继承IList所以不能保证每个IList对象是IList.此外使用IList显然不是解决方案,因为没有out不能将修饰泛型分配给较少继承的类;并且创建新的List实例不是这里的解决方案,因为有人可能想要实际引用IList作为IList指针;并使用List代替IList实际上是一种糟糕